//
//  WNetworkTool.swift
//  DanTang
//
//  Created by mnine on 18/3/24.
//  Copyright © 2018年 hrscy. All rights reserved.
//

import UIKit
import Alamofire
import SVProgressHUD
import SwiftyJSON

class WNetworkTool: NSObject {
    /// 单例  相当于实例化一个该类？
    static let shareNetworkTool = WNetworkTool()
    
    /// BASE_URL http://www.china-ofdi.org
    
    /// sid 种类 2 国别项目  get   "/apin/search/\(key)"  限定key为各个国家list
    
    /// sid 种类 1 首推项目  get   "/apin/recommend_pro"  5
    /// sid 种类 2 寻找项目  get   "/apin/search/\(key)"  300  title or filterattr_value
    /// sid 种类 3 热门项目  get   "/apin/hot_pro"        250
    /// sid 种类 4 最新项目  get   "/apin/latest_pro"     250
    
    /// sid 种类 5 收藏某项  post  "/apin/collectcreate"  参数：(user_id) (pro_id)
    /// sid 种类 6 已收藏项  get   “/apin/{user_id}/collectlist”
    /// sid 种类 7 取消收藏  get   "/apin/collectdestroy/\(user_id)/\(pro_id)"
    /// sid 种类 8 查收藏项  get   “/apin/collectlistsearch/\(user_id)/\(key)”
    
    
    /// sid 种类 9 发布项目  post  "/apin/procreate"      参数：
    /// 参数：id（不需要） uid catid（列表） title description filterattr_value（地域丨行业丨方式） amount_money  content
    /// sid 种类 10已发布项  get   “/apin/\(uid)/createlist”
    
    /// sid 种类 11各类项目  get   "/apin/pro/\(catid)"   280
    /// 1-海外投资 2-基础设施 4-境外园区 5-国际产能 6-海外安保 7-人才培训 37-法律服务 38-审计服务 40-咨询服务 43-招投标信息 44-翻译服务
    
    
    /// sid 种类 21 各类资讯 get  "/apin/zx/\(catid)"     300  catid＝39－展会公告 30-带图新闻 31-行业资讯（8）
    /// sid 种类 22 合作伙伴 get  "/apin/hbzx/\(catid)"   2    catid＝21－各国投资促进机构 22－基金 23－商业和行业协会 24－其他
    /// sid 种类 22 轮播新闻 get  "/api/hotnews/5"        2    catid＝30
    
    /// sid 种类 24 试图登录 get  “”
    /// sid 种类 25 手机注册找回 get  “/apin/registerm/\(username)/\(password)/\(name)”
    /// sid 种类 26 邮箱注册 post  “/apin/email”        参数：email password name
    /// sid 种类 27 邮箱找回 post  “/apin/findemail”    参数：email password
    
    /// sid 种类 27 个人信息查 get  “/apin/get_info/\(user_id)”
    /// sid 种类 28 个人信息改 post “/apin/update_info”   参数：
    
//    return response()->json(['status'=>1,'msg'=>'查询成功！'
//    ,'id'=>$data['id']
//    ,'phone'=>$data['phone']
//    ,'name'=>$data['name']
//    ,'email'=>$data['email']
//    ,'province'=>$data['province']
//    ,'city'=>$data['city']
//    ,'company_name'=>$data['company_name']
//    ,'address'=>$data['address']
//    ]);
    
    
    /// sid 种类 29 用户留言 post  “/apin/feedback”     参数：

//    $name=$request->name;
//    $company_name="";
//    $phone=$request->phone;   ///联系方式：电话或者邮箱
//    $contact=$request->contact;
//    $message=$request->message;
    
    /// sid 种类 30 版本检查 get   “”
    
    
    
    func loadPro(sid:Int ,id: Int, finished:@escaping (_ homeItems: [YMHomeItem]) -> ()) {
        //        let url = BASE_URL + "v1/channels/\(id)/items?gender=1&generation=1&limit=20&offset=0"
        SVProgressHUD.show(withStatus: "正在加载...")
        let url = BASE_URL + "v1/channels/\(id)/items"
        let params = ["gender": 1,
                      "generation": 1,
                      "limit": 20,
                      "offset": 0]
        Alamofire
            .request(url, parameters: params)
            .responseJSON { (response) in
                guard response.result.isSuccess else {
                    SVProgressHUD.showError(withStatus: "加载失败...")
                    return
                }
                if let value = response.result.value {
                    let dict = JSON(value)
                    let code = dict["code"].intValue
                    let message = dict["message"].stringValue
                    guard code == RETURN_OK else {
                        SVProgressHUD.showInfo(withStatus: message)
                        return
                    }
                    let data = dict["data"].dictionary
                    //  字典转成模型
                    if let items = data!["items"]?.arrayObject {
                        var homeItems = [YMHomeItem]()
                        for item in items {
                            let homeItem = YMHomeItem(dict: item as! [String: AnyObject])
                            homeItems.append(homeItem)
                        }
                        finished(homeItems)
                    }
                }
        }
    }
    
    
    func loadZiXun(id: Int, finished:@escaping (_ homeItems: [YMHomeItem]) -> ()) {
        //        let url = BASE_URL + "v1/channels/\(id)/items?gender=1&generation=1&limit=20&offset=0"
        let url = BASE_URL + "v1/channels/\(id)/items"
        let params = ["gender": 1,
                      "generation": 1,
                      "limit": 20,
                      "offset": 0]
        Alamofire
            .request(url, parameters: params)
            .responseJSON { (response) in
                guard response.result.isSuccess else {
                    SVProgressHUD.showError(withStatus: "加载失败...")
                    return
                }
                if let value = response.result.value {
                    let dict = JSON(value)
                    let code = dict["code"].intValue
                    let message = dict["message"].stringValue
                    guard code == RETURN_OK else {
                        SVProgressHUD.showInfo(withStatus: message)
                        return
                    }
                    let data = dict["data"].dictionary
                    //  字典转成模型
                    if let items = data!["items"]?.arrayObject {
                        var homeItems = [YMHomeItem]()
                        for item in items {
                            let homeItem = YMHomeItem(dict: item as! [String: AnyObject])
                            homeItems.append(homeItem)
                        }
                        finished(homeItems)
                    }
                }
        }
    }


}
